Welcome to GuiSGML

Document Processing the Amiga Way.
This is a test release of this program. The last uploaded version and date was Tuesday 12-Sep-00 21:26:44 (0.5.0)

Download InfoAll About GuiSGMLContact Information
How To Write Templates
Examples
Configuration and CustomisationsVersion History
Last but not least... A Screenshot



Downloading GuiSGML

Download the archive
This is an lha archive, despite the .bin extension for the Classic Amiga. Geocities prevent lha files being uploaded. The archive is also available on aminet

This archive now includes a VP and x86 Linux binary also. Note all the source files use Amiga filepaths to source in other files - you will have to use the filename mapping option if you use VP or linux with the source files. See below.

The VP and linux versions are Gui-less. The VP version must be moved to /app/stdio/GuiSGML.00 or have its internal path changed. Ami usage:

GuiSGML BATCH sourcefile destfile templatefile templatefile....

The word BATCH is required. This is needed because its common code with the Classic GUI version. The GUI will be ported in time.... Please accept the crude interface. It needs some work, but the primary objective of the author was to get the functionality working It is the authors intention to clean up the interface in the near future. Blah Blah.

Also note that dirs can be used in place of the filename. In that case every file in the dir is read (or any file read is saved in that dir).



So What Is GuiSGML?



And What Isn't GuiSGML? (Its not intended to be)



Contacting the Author

The author is Dave Trollope. All mail about GuiSGML can be sent to
guisgml@worldnet.att.net

How to Write and Use Templates

Templates are defined in "<NEWTEMPLATE>" tags. It is recommended that you have a directory of template files per website, a source directory and a "published" directory. You can call them whatever you want. A source file uses a "<TEMPLATE>" tag to reference a "<NEWTEMPLATE>" template or to source in a file. You can even pass variables in to templates! Follow the examples to learn.

Configuration and Customisations

GuiSGML is quite configurable, and getting even more configurable as time goes by. Tooltypes, are primarily used to set configuration properties

Version History

First Port of GuiSGML for Ami now uploaded....15 August 2000

Archive Date/Version : V0.6 Latest changes. Linux x86 Version available (command line only - investingating pythontk). AmigaVP Version available (command line only) Filename mapping! All the example files use Amiga file paths to access files that are included (INCLUDE=device:path/file). This can be interpreted in a Unix way by creating the appropriate map file. See the docs. An example amigaunixmap file is included. "make" like checks on the source and dest file dates to see if the source needs updating, even on a template change. See the docs. Now recurses to publish whole site, creating dirs appropriately. Bug fixed setting the publish path from the environment. Fixed some enforcer hits when a non existant template or include file is referenced. Window positions are now remembered. At last! The paste button is no longer disabled when nothing is selected. This allows you to paste into a new file from the clipboard. V0.5 Major bug fixed in the display code - icons weren't being counted properly. That resulted in the scrollbar getting screwed on large files, and when removing stuff. Also made the scrolling on a per tag basis instead of a pixel basis. Much more usable. Display code now displays line for SGML where the start tag is off the top of the window, but there are tags at the same level below the window - this wasn't a bug. It simply hadn't been implemented. Also did some optimisation of same code to loop through only the required nodes instead of the whole list, especially on the third and final pass of the code. This should be significantly faster for large files. Removed a couple of small memory leaks. Added CLIPUNIT tooltype/env variable setting. When a data block was changed to having nothing in it, the display is left with a selected icon. Previously it deselected the icon which breaks the flow of the task at hand. V0.4 Clipboard support, and copy paste buttons added. Tbis makes GuiSGML much more usable... Busy Pointer Implemented. V0.3.1 Font Sensitivity improved. Made a change in the SGML parsing to better match end tags with the right start tag - You probably not notice any difference. If you do, send me the file that parses differently. Included the Tag_List and ViewSGML files that should have been in the V0.3 archive. V0.3 Tags Only button added. This will toggle the hiding of non tag related blocks in the tag-tree. This makes viewing the file more concise when checking the structure. Sub Tags button added. This controls whether an operation works on an individual tag or the tag and all its sub tags. For example, when you cut a tag, you might want to cut only that tag or that tag and all its sub tags EG, a TR and the enclosed TDs. By removing an individual tag, any subtags have their level adjusted respectively. Separated the ABOVE/BELOW from the Parent/Child/Peer gadget. This was cumbersome. Now a checkbox can be flicked for above/below. Added Sizing checkbox to control automatic IMG sizing. If this is checked WIDTH and HEIGHT will be added to IMG tags if none exists and there is a datatype that recognises the file. Fixed a "bug" where CycleToMenu didn't pickup the screen font. Tags can now display arguments instead of just the tag type. This is specified in the Tag_List file using a display format. An example of this might be to display the HREF arg in the window so the user can see where the link is going. This makes viewing SGML easier. See the customisations document for details on this. $_ is introduced - This allows access to the tag name of the tag where arguments are being read from - currently always TEMPLATE or USE but in the future could be the actual template name if the TEMPLATE/USE keyword is dropped. Also this will be used in the definition of display formats. V0.2 Added a version number! Fixed a bug where the end tag was not being matched with the right start tag eg: <HTML> <P> <H1><P></P> </H1> </P> The </HTML> was being matched to the <P> in the <H1>. This can't be the case because its a child of <H1>, where as the </P> isn't. It must therefore match with the first <P> This fix also provides a performance improvement in loading SGML files. 17-Apr-2000 Fixed a bug that was causing lines to be dropped from the source file. 16-Apr-2000 This version has several bug fixes, and variables can be accessed through the $XXX or $(XXX) mechanism. This means variables can be used inside markup. There were various enforcer hits with variables, these should have been removed. A few performance improvements were made, all minor. To Do: Makefile like date comparison of dest file if exists. DTD Storage and Checking Arg display hook for each tag eg name arg for TEMPLATE so that you don't simply see the tag but the tag and an arg eg: TEMPLATE (BASICBODY) Convert Control Panel to icons instead of text buttons



Screen Shot


Questions? Drop the author an email.